package managerBeanImpl;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import managerBean.RegistrazioneManagerBean;
import model.Carrello;
import model.Credenziali;
import model.UtenteGruppo;
import model.UtenteRegistrato;
import model.Wishlist;

@Stateless
public class RegistrazioneManagerBeanImpl implements RegistrazioneManagerBean {

	@PersistenceContext
    private EntityManager em;
	
	@Override
	public void registraUtenteMgr(String username, String password,
			String email, String indirizzo, Date dataNascita) throws ParseException {
		Query query=em.createQuery("SELECT u FROM UtenteRegistrato u WHERE u.idCarrello=(SELECT max(u1.idCarrello) FROM UtenteRegistrato u1)");
		List<UtenteRegistrato> carrelli=query.getResultList();
		int idCarrello;
		if(carrelli.isEmpty())
			idCarrello=1;
		else
			idCarrello=carrelli.get(0).getIdCarrello()+1;
		Query query2=em.createQuery("SELECT u FROM UtenteRegistrato u WHERE u.idWishlist=(SELECT max(u1.idWishlist) FROM UtenteRegistrato u1)");
		List<UtenteRegistrato> wishlists=query2.getResultList();
		int idWishlist;
		if(wishlists.isEmpty())
			idWishlist=1;
		else
			idWishlist=wishlists.get(0).getIdWishlist()+1;
		UtenteRegistrato utente=new UtenteRegistrato(username, dataNascita, email, idCarrello, idWishlist, indirizzo, password);
		UtenteGruppo gruppo=new UtenteGruppo(username, "CLIENTE");
		Credenziali credenziali=new Credenziali(username, password);
		em.persist(utente);
		em.persist(gruppo);
		em.persist(credenziali);
		
	}

}
